﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CreatePerformanceCounters.Test
{
    class TestHelper
    {
        public const string NotRecognizedParam = "-x";
        public const string HelpParam = "-h";
        public const string ValidateParam = "-v";
        public const string CreateParam = "-c";
        public const string NotValidString = "NotValidString";
        public const string ValidString = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string NullCategoryName = @"[
            {
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string EmptyCategoryName = @"[
            {
                'Name':'',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string NullCategoryType = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string WrongCategoryType = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':1234,
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1234,
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string CategoryWithNoCounters1 = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1
            }
        ]";

        public const string CategoryWithNoCounters2 = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                ]
            }
        ]";

        public const string NullPerformanceCounterName = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string EmptyPerformanceCounterName = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'',
                        'Help':'MyHelp1Counter1',
                        'Type':0
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65792
                    }
                ]
            }
        ]";

        public const string NullPerformanceCounterType = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1'
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':256
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':65536
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2'
                    }
                ]
            }
        ]";

        public const string WrongPerformanceCounterType = @"[
            {
                'Name':'MyName1',
                'Help':'MyHelp1',
                'Type':0,
                'Counters':[
                    {
                        'Name':'MyName1Counter1',
                        'Help':'MyHelp1Counter1',
                        'Type':256
                    },
                    {
                        'Name':'MyName1Counter2',
                        'Help':'MyHelp1Counter2',
                        'Type':1234
                    }
                ]
            },
            {
                'Name':'MyName2',
                'Help':'MyHelp2',
                'Type':1,
                'Counters':[
                    {
                        'Name':'MyName2Counter1',
                        'Help':'MyHelp2Counter1',
                        'Type':1234
                    },
                    {
                        'Name':'MyName2Counter2',
                        'Help':'MyHelp2Counter2',
                        'Type':65536
                    }
                ]
            }
        ]";
    }
}